//#include <iostream>
//using namespace std;
//
//class date
//{
//public:
//    date(int year, int month, int day)
//        :_year(year)
//        , _month(month)
//        , _day(day)
//    {}
//
//    int GetMonthDay(int year, int month)
//    {
//        static int arr[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//        if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)))
//        {
//            return 29;
//        }
//        else
//        {
//            return arr[month];
//        }
//    }
//
//    bool operator==(const date& d) const
//    {
//        return _year == d._year && _month == d._month && _day == d._day;
//    }
//
//    bool operator!=(const date& d) const
//    {
//        return !(*this == d);
//    }
//
//    date& operator+=(int day)
//    {
//        _day += day;
//
//        while (_day > GetMonthDay(_year, _month))
//        {
//            _day -= GetMonthDay(_year, _month);
//            ++_month;
//
//            if (_month == 13)
//            {
//                _month = 1;
//                _year++;
//            }
//        }
//
//        return *this;
//    }
//
//    date& operator++()
//    {
//        *this += 1;
//        return *this;
//    }
//
//    bool operator<(const date& d)
//    {
//        if (_year < d._year)
//        {
//            return true;
//        }
//        else if (_year == d._year && _month == d._month)
//        {
//            return true;
//        }
//        else if (_year == d._year && _month == d._month && _day < d._day)
//        {
//            return true;
//        }
//
//        return false;
//    }
//
//    int operator-(const date& d)
//    {
//        date max = *this;
//        date min = d;
//        if (max < d)
//        {
//            max = d;
//            min = *this;
//        }
//
//        int count = 0;
//        while (min != max)
//        {
//            ++count;
//            ++min;
//        }
//
//        return count;
//    }
//
//    int _year;
//    int _month;
//    int _day;
//};
//
//int main() {
//    int a, b;
//    cin >> a >> b;
//
//    int year1 = a / 10000, month1 = a / 100 % 100, day1 = a % 100;
//    int year2 = b / 10000, month2 = b / 100 % 100, day2 = b % 100;
//
//    date d1(year1, month1, day1);
//    date d2(year2, month2, day2);
//
//    int gap = d1 - d2;
//
//    return 0;
//}

//
//#include <iostream>
//using namespace std;
//
//int get(int year, int month)
//{
//    static int arr[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//    if (year == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)))
//    {
//        return 29;
//    }
//    else
//    {
//        return arr[month];
//    }
//}
//
//int main() {
//    int y, n;
//
//    while (cin >> y >> n)
//    {
//        int month, day;
//        int i = 1;
//
//        while (n > get(y, i))
//        {
//            n -= get(y, i);
//            i++;
//        }
//
//        if (i < 10)
//        {
//            if (n < 10)
//            {
//                cout << y << '-' << '0' << i << '-' << '0' << n << endl;
//            }
//            else
//            {
//                cout << y << '-' << '0' << i << '-' << n << endl;
//            }
//        }
//        else
//        {
//            if (n < 10)
//            {
//                cout << y << '-' << i << '-' << '0' << n << endl;
//            }
//            else
//            {
//                cout << y << '-' << i << '-' << n << endl;
//            }
//        }
//    }
//
//    return 0;
//}

//#include <iostream>
//using namespace std;
//
//typedef int DataType;
//struct Stack
//{
//    void Init(size_t capacity)
//    {
//        _array = (DataType*)malloc(sizeof(DataType) * capacity);
//        if (nullptr == _array)
//        {
//            perror("malloc申请空间失败");
//            return;
//        }
//        _capacity = capacity;
//        _size = 0;
//    }
//
//    void Push(const DataType& data)
//    {
//        // 扩容
//        _array[_size] = data;
//        ++_size;
//    }
//
//    DataType Top()
//    {
//        return _array[_size - 1];
//    }
//
//    void Destroy()
//    {
//        if (_array)
//        {
//            free(_array);
//            _array = nullptr;
//            _capacity = 0;
//            _size = 0;
//        }
//    }
//
//    DataType* _array;
//    size_t _capacity;
//    size_t _size;
//};
//
//int main()
//{
//    Stack s;
//    s.Init(10);
//    s.Push(1);
//    s.Push(2);
//    s.Push(3);
//    cout << s.Top() << endl;
//    s.Destroy();
//    return 0;
//}
//
//
//#include <iostream>
//
//using namespace std;
//
//class Person
//{
//public: // 这里先不用理解
//
//	// 展示基本信息	
//	void showInfo()
//	{
//		cout << _name << ' ' << _sex << ' ' << _age << endl;
//	}
//
//	char* _name; // 名字
//	char* _sex;  // 性别
//	int _age;    // 年龄
//};
//
//int main()
//{
//
//
//	return 0;
//}


//#include <iostream>
//using namespace std;
//
//// 类中既有成员变量，又有成员函数
//class A1 {
//public:
//	void f1() {}
//private:
//	int _a;
//};
//
//// 类中仅有成员函数
//class A2 {
//public:
//	void f2() {}
//};
//
//// 类中什么都没有---空类
//class A3
//{};
//
//int main()
//{
//	cout << sizeof(A1) << endl << sizeof(A2) << endl << sizeof(A3) << endl;
//
//	return 0;
//}
//

//#include <iostream>
//
//using namespace std;
//
//class Date
//{
//public:
//    void Init(int year, int month, int day)
//    {
//        _year = year;
//        _month = month;
//        _day = day;
//    }
//
//    void Print()
//    {
//        cout << this->_year << "-" << this->_month << "-" << this->_day << endl;
//    }
//
//private:
//    int _year;   // 年
//    int _month;  // 月
//    int _day;    // 日
//};
//
//int main()
//{
//    Date d1, d2;
//
//    d1.Init(2022, 1, 11);
//    d2.Init(2022, 1, 12);
//    d1.Print();
//    d2.Print();
//
//    return 0;
//}

//#include <iostream>
//
//using namespace std;

//class Time
//{
//public:
//    Time()
//    {
//        cout << "Time()" << endl;
//        _hour = 0;
//        _minute = 0;
//        _second = 0;
//    }
//private:
//    int _hour;
//    int _minute;
//    int _second;
//};
//
//class Date
//{
//private:
//    // 基本类型(内置类型)
//    int _year;
//    int _month;
//    int _day;
//    // 自定义类型
//    Time _t;
//};
//
//int main()
//{
//    Date d;
//
//    return 0;
//}

//#include <iostream>
//
//using namespace std;
//
//class Time
//{
//public:
//    Time()
//    {
//        _hour = 1;
//        _minute = 1;
//        _second = 1;
//    }
//    Time& operator=(const Time& t)
//    {
//        cout << "Time& operator=(const Time& t)" << endl;
//        if (this != &t)
//        {
//            _hour = t._hour;
//            _minute = t._minute;
//            _second = t._second;
//        }
//        return *this;
//    }
//private:
//    int _hour;
//    int _minute;
//    int _second;
//};
//
//class Date
//{
//private:
//    // 基本类型(内置类型)
//    int _year = 2023;
//    int _month = 1;
//    int _day = 1;
//    // 自定义类型
//    Time _t;
//};
//
//int main()
//{
//    Date d1;
//    Date d2;
//    d1 = d2;
//    return 0;
//}
//#include <iostream>
//
//using namespace std;
//
//class Time
//{
//public:
//    Time()
//    {
//        _hour = 1;
//        _minute = 1;
//        _second = 1;
//    }
//    Time& operator=(const Time& t)
//    {
//        cout << "Time& operator=(const Time& t)" << endl;
//        if (this != &t)
//        {
//            _hour = t._hour;
//            _minute = t._minute;
//            _second = t._second;
//        }
//        return *this;
//    }
//private:
//    int _hour;
//    int _minute;
//    int _second;
//};
//
//class Date
//{
//private:
//    // 基本类型(内置类型)
//    int _year = 2023;
//    int _month = 1;
//    int _day = 1;
//    // 自定义类型
//    Time _t;
//};
//
//int main()
//{
//    Date d1;
//    Date d2;
//    d1 = d2;
//    return 0;
//}
#include <iostream>

using namespace std;

class Time
{
public:
    Time()
    {
        _hour = 1;
        _minute = 1;
        _second = 1;
    }
    Time& operator=(const Time& t)
    {
        cout << "Time& operator=(const Time& t)" << endl;
        if (this != &t)
        {
            _hour = t._hour;
            _minute = t._minute;
            _second = t._second;
        }
        return *this;
    }
private:
    int _hour;
    int _minute;
    int _second;
};

class Date
{
private:
    // 基本类型(内置类型)
    int _year = 2023;
    int _month = 1;
    int _day = 1;
    // 自定义类型
    Time _t;
};

int main()
{
    Date d1;
    Date d2;
    d1 = d2;
    return 0;
}
